Engineering COPL-style language interpreters

Project

Our course, concepts of programming languages (not required for this topic, but certainly helpful), uses interpreters to study how specific foundational language features work.

However, a realistic language implementation requires much more than what we have discussed in our interpreters – not in terms of supported language concepts, but rather in terms of functionality expected of the implementation. These may include:

These days, one does not have to start from scratch when implementing language tooling. Solutions that will help might include:

If you choose this project topic, we will work with you to figure out an interesting slice of the problems/techniques above to work on. Feel free to already propose a focus area if you have something that interests you. None of the above lists are meant to be exhaustive – though we do ask for solutions we could potentially integrate with the actual COPL interpreters.